package exo3;

public class Employe {
	private String nom;
	private double salaireHoraire;
	private int nbHeureHebdo;

	private static final int nbHeureLegal = 40;
	private static final int nbHeureMax = 60;
	private static final double salaireMin = 13;
	private static final double coef = 1.5;

	public Employe(String nom, double sal, int heure) throws Exception {
		this.nom = nom;
		this.salaireHoraire = sal;
		this.nbHeureHebdo = heure;
		if (!this.SalaireValide()) {
			throw new Exception("Salaire non valide : inférieur à 13€ !\n");
		}
		if (!this.nbHeureValide()) {
			throw new Exception("Horaire non valide : supérieur à 60h !\n");
		}
	}

	public boolean SalaireValide() {
		if (this.salaireHoraire < salaireMin) {
			return false;
		}
		return true;
	}

	public boolean nbHeureValide() {
		if (this.nbHeureHebdo > nbHeureMax) {
			return false;
		}
		return true;
	}

	public double calculSalaireHebdo() {
		if (this.nbHeureHebdo < nbHeureLegal) {
			return this.salaireHoraire * this.nbHeureHebdo;
		}
		return this.salaireHoraire * nbHeureLegal
				+ (this.nbHeureHebdo - nbHeureLegal) * this.salaireHoraire
				* coef;
	}

	@Override
	public String toString() {
		StringBuffer etat = new StringBuffer();
		etat.append(this.nom).append("\nBase de salaire\t\t: ")
				.append(this.salaireHoraire)
				.append(" €/h\nHeures de travail\t: ")
				.append(this.nbHeureHebdo)
				.append(" h\nSalaire hebdomadaire\t: ")
				.append(this.calculSalaireHebdo()).append(" €\n");
		return etat.toString();
	}

}